The present invention relates generally to data transmission on computer networks, and more particularly to a server load testing and measurement system.
The World Wide Web (Web) has proliferated over the past decade, to become an essential tool in modern communication and commerce. The number of users accessing the Web, as well as the content available on the Web, have grown exponentially. With this growth, performance demands placed upon Web servers has increased, and now manufacturers strive to develop faster web servers. Unfortunately, test equipment technology lags far behind current web server technology, such that manufacturers are unable to accurately test and measure the performance of their web servers.
Prior efforts to generate synthetic HTTP client traffic for measuring server performance have suffered from the problem that as the testing tool application attempts to increase the request generation rate, the server may become overloaded and unintentionally slow the request generation rate. This problem, explained in more detail below, is referred to as request generation throttling, and leads to inaccurate test results, thereby slowing the development of faster web server technology.
It would be desirable to provide a server load test system that does not experience request throttling, and which allows a user to simulate easily real-world request load.
A server load test system, device, and method for generating an artificial load on a web server and evaluating the performance of the Web server. The method typically includes the steps of generating a pool of more than about 1000 synthetic clients, and directing each synthetic client to request web resources from the web server.
According to another aspect of the invention, the method may also include generating a pool of synthetic clients, and establishing groups of clients within the pool of synthetic clients. Each group of clients is typically configured to simulate a user-specified performance parameter, such as connection bandwidth, packet loss rate, delay, Qsize, weighting, network interface, netmask, etc.
The system may include a load testing tool application having a request generator configured to generate a plurality of synthetic clients, each client being configured to send HTTP requests to the web server via a network. The request generator is typically configured to generate more than about 1000 synthetic clients simultaneously connected to the web server.
According to another aspect of the invention, the system also may include a request generator configured to generate a pool of synthetic clients, each client being configured to send HTTP requests to the web server. The system may further include a group configuration interface configured to enable a user to specify a performance parameter for each of a plurality of groups of synthetic clients within the pool of synthetic clients.
According to another aspect of the invention, the system may include request generator configured to generate a pool of synthetic clients, each client being configured to send HTTP requests to the web server. The system may further include a scenario generator configured to generate a scenario of web resources that the synthetic clients are to request. The scenario generator typically is configured to generate the scenario based on log data from the web server.